#include <iostream>

using namespace std;
//变量是值可以改变的量，需要定义后才能使用，定义格式如下：
//
//变量类型 变量名；
//变量类型 变量名 = 初值；
//定义要求：
//
//不能是C语言标识符
//        变量名的第一个字符必须是字母或下划线，除第一个字符之外的其他字符必须是字母、数字或下划线
//        区分大小写

int main() {
    // 1.整型
    // int 32bit
    int num;
    num = 1;

    // long long int 64bit
    long long bigNum;
    bigNum = 1234567890123456LL;

    // 2.浮点型
    // 单精度float 32bit
    float f1;
    f1 = 3.1415;
    printf("%f\n", f1);

    //双精度double 64bit
    double db;
    db = 3.141592653589;
    printf("%d\n", db);

    // 字符串
    // 字符串是由若干字符组成的串，在C语言中没有单独一种基本数据类型可以存储（C++中有string类型)，只能使用字符数组的方式。
    char str1[25] = "Wo ai de ren bu ai wo";
    char str2[25] = "So sad a story it is.";
    printf("%s, %s", str1, str2);

    // 4.布尔型
    //
    //bool变量：true，false
    bool t = true;
    bool f = false;
    std::cout << t << " " << f << endl;


    // 强制类型转换
    double r = 12.56;
    int a = 3, b = 5;
    printf("%d\n", (int) r);
    printf("%d\n", a / b);
    printf("%.1f", (double) a / (double) b);

    // 2.1.4 符号常量和const常量

#define pi 3.14

    const double pii = 3.14;
    cout << pi << endl;
    cout << pii << endl;

    // 2.1.5 运算符
    //运算符就是用来计算的符号。常用的运算符有算术运算符、关系运算符、逻辑运算符、条件运算符、位运算符等。

    // 2.2.1 赋值表达式
    int n = 5;
    n = 6;

    // 2.2.2 使用scanf和printf输入/输出
    //1.scanf函数的使用
    scanf("%d", &n);

// 2.printf函数的使用
//    printf("格式控制", 变量名称);
    n = 5;
    printf("%d", n);

    // 2.2.3  使用getchar和putchar输入/输出字符
    //getchar用来输入单个字符，putchar用来输出单个字符，在某些scanf函数使用不便的场合可以使用getchar来输入字符。
    char c1, c2, c3;
    c1 = getchar();
    getchar();
    c2 = getchar();
    c3 = getchar();
    putchar(c1);
    putchar(c2);
    putchar(c3);
    return 0;


    return 0;
}
